﻿//////////////////////////////////////////////////////////////
// <auto-generated>This code was generated by LLBLGen Pro 5.9.</auto-generated>
//////////////////////////////////////////////////////////////
// Code is generated on: 
// Code is generated using templates: SD.TemplateBindings.SharedTemplates
// Templates vendor: Solutions Design.
//////////////////////////////////////////////////////////////
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using LLBLGenPro.OrmCookbook.HelperClasses;
using LLBLGenPro.OrmCookbook.FactoryClasses;
using LLBLGenPro.OrmCookbook.RelationClasses;

using SD.LLBLGen.Pro.ORMSupportClasses;

namespace LLBLGenPro.OrmCookbook.EntityClasses
{
	// __LLBLGENPRO_USER_CODE_REGION_START AdditionalNamespaces
	// __LLBLGENPRO_USER_CODE_REGION_END
	/// <summary>Entity class which represents the entity 'EmployeeDetail'.<br/><br/></summary>
	[Serializable]
	public partial class EmployeeDetailEntity : CommonEntityBase, Recipes.IEmployeeDetail
		// __LLBLGENPRO_USER_CODE_REGION_START AdditionalInterfaces
		// __LLBLGENPRO_USER_CODE_REGION_END	
	{

		// __LLBLGENPRO_USER_CODE_REGION_START PrivateMembers
		// __LLBLGENPRO_USER_CODE_REGION_END
		private static EmployeeDetailEntityStaticMetaData _staticMetaData = new EmployeeDetailEntityStaticMetaData();
		private static EmployeeDetailRelations _relationsFactory = new EmployeeDetailRelations();

		/// <summary>All names of fields mapped onto a relation. Usable for in-memory filtering</summary>
		public static partial class MemberNames
		{
		}

		/// <summary>Static meta-data storage for navigator related information</summary>
		protected class EmployeeDetailEntityStaticMetaData : EntityStaticMetaDataBase
		{
			public EmployeeDetailEntityStaticMetaData()
			{
				SetEntityCoreInfo("EmployeeDetailEntity", InheritanceHierarchyType.None, false, (int)LLBLGenPro.OrmCookbook.EntityType.EmployeeDetailEntity, typeof(EmployeeDetailEntity), typeof(EmployeeDetailEntityFactory), false);
			}
		}

		/// <summary>Static ctor</summary>
		static EmployeeDetailEntity()
		{
		}

		/// <summary> CTor</summary>
		public EmployeeDetailEntity()
		{
			InitClassEmpty(null, null);
		}

		/// <summary> CTor</summary>
		/// <param name="fields">Fields object to set as the fields for this entity.</param>
		public EmployeeDetailEntity(IEntityFields2 fields)
		{
			InitClassEmpty(null, fields);
		}

		/// <summary> CTor</summary>
		/// <param name="validator">The custom validator object for this EmployeeDetailEntity</param>
		public EmployeeDetailEntity(IValidator validator)
		{
			InitClassEmpty(validator, null);
		}

		/// <summary>Private CTor for deserialization</summary>
		/// <param name="info"></param>
		/// <param name="context"></param>
		protected EmployeeDetailEntity(SerializationInfo info, StreamingContext context) : base(info, context)
		{
			// __LLBLGENPRO_USER_CODE_REGION_START DeserializationConstructor
			// __LLBLGENPRO_USER_CODE_REGION_END
		}
		
		/// <inheritdoc/>
		protected override EntityStaticMetaDataBase GetEntityStaticMetaData() {	return _staticMetaData; }

		/// <summary>Initializes the class members</summary>
		private void InitClassMembers()
		{
			PerformDependencyInjection();
			// __LLBLGENPRO_USER_CODE_REGION_START InitClassMembers
			// __LLBLGENPRO_USER_CODE_REGION_END
			OnInitClassMembersComplete();
		}

		/// <summary>Initializes the class with empty data, as if it is a new Entity.</summary>
		/// <param name="validator">The validator object for this EmployeeDetailEntity</param>
		/// <param name="fields">Fields of this entity</param>
		private void InitClassEmpty(IValidator validator, IEntityFields2 fields)
		{
			OnInitializing();
			this.Fields = fields ?? CreateFields();
			this.Validator = validator;
			InitClassMembers();
			// __LLBLGENPRO_USER_CODE_REGION_START InitClassEmpty
			// __LLBLGENPRO_USER_CODE_REGION_END

			OnInitialized();
		}

		/// <summary>The relations object holding all relations of this entity with other entity classes.</summary>
		public static EmployeeDetailRelations Relations { get { return _relationsFactory; } }

		/// <summary>The CellPhone property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."CellPhone".<br/>View field type characteristics (type, precision, scale, length): VarChar, 0, 0, 15.<br/>View field behavior characteristics (is nullable, is PK, is identity): true, false, false</remarks>
		public virtual System.String CellPhone
		{
			get { return (System.String)GetValue((int)EmployeeDetailFieldIndex.CellPhone, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.CellPhone, value); }
		}

		/// <summary>The EmployeeClassificationKey property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."EmployeeClassificationKey".<br/>View field type characteristics (type, precision, scale, length): Int, 10, 0, 0.<br/>View field behavior characteristics (is nullable, is PK, is identity): false, false, false</remarks>
		public virtual System.Int32 EmployeeClassificationKey
		{
			get { return (System.Int32)GetValue((int)EmployeeDetailFieldIndex.EmployeeClassificationKey, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.EmployeeClassificationKey, value); }
		}

		/// <summary>The EmployeeClassificationName property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."EmployeeClassificationName".<br/>View field type characteristics (type, precision, scale, length): VarChar, 0, 0, 30.<br/>View field behavior characteristics (is nullable, is PK, is identity): false, false, false</remarks>
		public virtual System.String EmployeeClassificationName
		{
			get { return (System.String)GetValue((int)EmployeeDetailFieldIndex.EmployeeClassificationName, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.EmployeeClassificationName, value); }
		}

		/// <summary>The EmployeeKey property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."EmployeeKey".<br/>View field type characteristics (type, precision, scale, length): Int, 10, 0, 0.<br/>View field behavior characteristics (is nullable, is PK, is identity): false, false, false</remarks>
		public virtual System.Int32 EmployeeKey
		{
			get { return (System.Int32)GetValue((int)EmployeeDetailFieldIndex.EmployeeKey, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.EmployeeKey, value); }
		}

		/// <summary>The FirstName property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."FirstName".<br/>View field type characteristics (type, precision, scale, length): NVarChar, 0, 0, 50.<br/>View field behavior characteristics (is nullable, is PK, is identity): false, false, false</remarks>
		public virtual System.String FirstName
		{
			get { return (System.String)GetValue((int)EmployeeDetailFieldIndex.FirstName, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.FirstName, value); }
		}

		/// <summary>The IsEmployee property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."IsEmployee".<br/>View field type characteristics (type, precision, scale, length): Bit, 0, 0, 0.<br/>View field behavior characteristics (is nullable, is PK, is identity): false, false, false</remarks>
		public virtual System.Boolean IsEmployee
		{
			get { return (System.Boolean)GetValue((int)EmployeeDetailFieldIndex.IsEmployee, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.IsEmployee, value); }
		}

		/// <summary>The IsExempt property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."IsExempt".<br/>View field type characteristics (type, precision, scale, length): Bit, 0, 0, 0.<br/>View field behavior characteristics (is nullable, is PK, is identity): false, false, false</remarks>
		public virtual System.Boolean IsExempt
		{
			get { return (System.Boolean)GetValue((int)EmployeeDetailFieldIndex.IsExempt, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.IsExempt, value); }
		}

		/// <summary>The LastName property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."LastName".<br/>View field type characteristics (type, precision, scale, length): NVarChar, 0, 0, 50.<br/>View field behavior characteristics (is nullable, is PK, is identity): false, false, false</remarks>
		public virtual System.String LastName
		{
			get { return (System.String)GetValue((int)EmployeeDetailFieldIndex.LastName, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.LastName, value); }
		}

		/// <summary>The MiddleName property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."MiddleName".<br/>View field type characteristics (type, precision, scale, length): NVarChar, 0, 0, 50.<br/>View field behavior characteristics (is nullable, is PK, is identity): true, false, false</remarks>
		public virtual System.String MiddleName
		{
			get { return (System.String)GetValue((int)EmployeeDetailFieldIndex.MiddleName, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.MiddleName, value); }
		}

		/// <summary>The OfficePhone property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."OfficePhone".<br/>View field type characteristics (type, precision, scale, length): VarChar, 0, 0, 15.<br/>View field behavior characteristics (is nullable, is PK, is identity): true, false, false</remarks>
		public virtual System.String OfficePhone
		{
			get { return (System.String)GetValue((int)EmployeeDetailFieldIndex.OfficePhone, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.OfficePhone, value); }
		}

		/// <summary>The Title property of the Entity EmployeeDetail<br/><br/></summary>
		/// <remarks>Mapped on  view field: "EmployeeDetail"."Title".<br/>View field type characteristics (type, precision, scale, length): NVarChar, 0, 0, 100.<br/>View field behavior characteristics (is nullable, is PK, is identity): true, false, false</remarks>
		public virtual System.String Title
		{
			get { return (System.String)GetValue((int)EmployeeDetailFieldIndex.Title, true); }
			set	{ SetValue((int)EmployeeDetailFieldIndex.Title, value); }
		}

		// __LLBLGENPRO_USER_CODE_REGION_START CustomEntityCode
		// __LLBLGENPRO_USER_CODE_REGION_END

	}
}

namespace LLBLGenPro.OrmCookbook
{
	public enum EmployeeDetailFieldIndex
	{
		///<summary>CellPhone. </summary>
		CellPhone,
		///<summary>EmployeeClassificationKey. </summary>
		EmployeeClassificationKey,
		///<summary>EmployeeClassificationName. </summary>
		EmployeeClassificationName,
		///<summary>EmployeeKey. </summary>
		EmployeeKey,
		///<summary>FirstName. </summary>
		FirstName,
		///<summary>IsEmployee. </summary>
		IsEmployee,
		///<summary>IsExempt. </summary>
		IsExempt,
		///<summary>LastName. </summary>
		LastName,
		///<summary>MiddleName. </summary>
		MiddleName,
		///<summary>OfficePhone. </summary>
		OfficePhone,
		///<summary>Title. </summary>
		Title,
		/// <summary></summary>
		AmountOfFields
	}
}

namespace LLBLGenPro.OrmCookbook.RelationClasses
{
	/// <summary>Implements the relations factory for the entity: EmployeeDetail. </summary>
	public partial class EmployeeDetailRelations: RelationFactory
	{

	}
	
	/// <summary>Static class which is used for providing relationship instances which are re-used internally for syncing</summary>
	internal static class StaticEmployeeDetailRelations
	{

		/// <summary>CTor</summary>
		static StaticEmployeeDetailRelations() { }
	}
}
